var document = this.document;
var window = this.window;

const types = {
    type: 'ALL_EVENT_XJ',
    icon: 'https://ocean.codemao.cn/appcraft/resource/icon/基础/点击.svg',
    title: '任意控件事件',
    version: '1.2.0',
    author: 'XJ王大哥(2357942846)',
    isInvisibleWidget: true,
    isGlobalWidget: false,
    properties: [
        {
            key: 'tip',
            label: '使用教程',
            valueType: 'string',
            defaultValue: '请先使用F12获取获取控件ID，然后以"#{控件ID}"的形式填入属性中，当然，也可以自定义选择器。注意，要使用，请在屏幕中添加积木“当打开屏幕时：调用 任意控件事件 绑定事件”。',
            editorType: 'TextArea',
            generateBlock: false,
        },
        {
            key: 'ID',
            label: '选择器',
            valueType: 'string',
            defaultValue: '',
        }
    ],
    methods: [
        {
            key: 'bindingEvents',
            label: '初始化',
            params: [],
        },
    ],
    events: [
        {
            key: 'onclick',
            label: '被点击',
            params: [
                { key: 'X', label: 'X', valueType: 'number' },
                { key: 'Y', label: 'Y', valueType: 'number' }
            ]
        },
        {
            key: 'onpointerdown',
            label: '被按下',
            params: [
                { key: 'X', label: 'X', valueType: 'number' },
                { key: 'Y', label: 'Y', valueType: 'number' }
            ]
        },
        {
            key: 'onpointerup',
            label: '被松开',
            params: [
                { key: 'X', label: 'X', valueType: 'number' },
                { key: 'Y', label: 'Y', valueType: 'number' }
            ]
        },
        {
            key: 'ondblclick',
            label: '被双击',
            params: [
                { key: 'X', label: 'X', valueType: 'number' },
                { key: 'Y', label: 'Y', valueType: 'number' }
            ]
        },
        {
            key: 'onpointermove',
            label: '被滑动',
            params: [
                { key: 'X', label: 'X', valueType: 'number' },
                { key: 'Y', label: 'Y', valueType: 'number' },
                { key: 'movementX', label: 'X滑动量', valueType: 'number' },
                { key: 'movementY', label: 'Y滑动量', valueType: 'number' }
            ]
        },
        {
            key: 'onpointerenter',
            label: '鼠标移入',
            params: []
        },
        {
            key: 'onpointerleave',
            label: '鼠标移出',
            params: []
        },
    ],
};

class Widget extends InvisibleWidget {
    constructor(props) {
        super(props);
        this.ID = props.ID;
        this.down = false;
    }

    bindingEvents = () => {
        const myWidget = document.querySelector(this.ID);
        myWidget.onclick = e => this.emit('onclick', e.x, e.y);
        myWidget.onpointerdown = e => {
            this.emit('onpointerdown', e.x, e.y);
            this.down = true;
        };
        myWidget.onpointerup = e => {
            this.emit('onpointerup', e.x, e.y);
            this.down = false;
        };
        myWidget.ondblclick = e => this.emit('ondblclick', e.x, e.y);
        myWidget.onpointermove = e => { if (this.down) this.emit('onpointermove', e.x, e.y, e.movementX, e.movementY); };
        myWidget.onpointerenter = e => this.emit('onpointerenter');
        myWidget.onpointerleave = e => this.emit('onpointerleave');
    };

}

exports.types = types;
exports.widget = Widget;odeGeeX ᵇᵉᵗᵃ
代码翻译
你
/explain


      key: 'tip',
      label: '使用教程',
      valueType: 'string',
      defaultValue: '请先使用F12获取获取控件ID，然后以"#{控件ID}"的形式填入属性中，当然，也可以自定义选择器。注意，要使用，请在屏幕中添加积木“当打开屏幕时：调用 任意控件事件 绑定事件”。',
      editorType: 'TextArea',
      generateBlock
CodeGeeX
这段代码是用于定义一个属性配置项，该属性配置项具有以下属性：

key：属性配置项的键，值为'tip'。
label：属性配置项的标签，值为'使用教程'。
valueType：属性配置项的值类型，值为'string'。
defaultValue：属性配置项的默认值，值为一个字符串，内容为“请先使用F12获取获取控件ID，然后以"#{控件ID}"的形式填入属性中，当然，也可以自定义选择器。注意，要使用，请在屏幕中添加积木“当打开屏幕时：调用 任意控件事件 绑定事件”。”。
editorType：属性配置项的编辑器类型，值为'TextArea'。
generateBlock：属性配置项的生成积木，值为undefined。
Switch to English

你
/explain


      key: 'tip',
      label: '使用教程',
      valueType: 'string',
      defaultValue: '请先使用F12获取获取控件ID，然后以"#{控件ID}"的形式填入属性中，当然，也可以自定义选择器。注意，要使用，请在屏幕中添加积木“当打开屏幕时：调用 任意控件事件 绑定事件”。',
      editorType: 'TextArea',
      generateBlock
CodeGeeX
这段代码定义了一个属性配置项，它具有以下属性：

key：属性配置项的键，值为'tip'。
label：属性配置项的标签，值为'使用教程'。
valueType：属性配置项的值类型，值为'string'。
defaultValue：属性配置项的默认值，值为'请先使用F12获取获取控件ID，然后以"#{控件ID}"的形式填入属性中，当然，也可以自定义选择器。注意，要使用，请在屏幕中添加积木“当打开屏幕时：调用 任意控件事件 绑定事件”。'。
editorType：属性配置项的编辑器类型，值为'TextArea'。
generateBlock：属性配置项的生成积木，值为undefined。

你
/comment

const types = {
  type: 'ALL_EVENT_XJ',
  icon: 'https://ocean.codemao.cn/appcraft/resource/icon/基础/点击.svg',
  title: '任意控件事件',
  version: '1.2.0',
  author: 'XJ王大哥(2357942846)',
  isInvisibleWidget: true,
  isGlobalWidget: false,
  properties: [
    {
      key: 'tip',
      label: '使用教程',
      valueType: 'string',
      defaultValue: '请先使用F12获取获取控件ID，然后以"#{控件ID}"的形式填入属性中，当然，也可以自定义选择器。注意，要使用，请在屏幕中添加积木“当打开屏幕时：调用 任意控件事件 绑定事件”。',
      editorType: 'TextArea',
      generateBlock: false,
    },
    {
      key: 'ID',
      label: '选择器',
      valueType: 'string',
      defaultValue: '',
    }
  ],
  methods: [
      {
        key: 'bindingEvents',
        label: '初始化',
        params: [],
      },
  ],
  events: [
    {
      key: 'onclick',
      label: '被点击',
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      key: 'onpointerdown',
      label: '被按下',
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      key: 'onpointerup',
      label: '被松开',
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      key: 'ondblclick',
      label: '被双击',
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      key: 'onpointermove',
      label: '被滑动',
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'},
        {key:'movementX',label:'X滑动量',valueType:'number'},
        {key:'movementY',label:'Y滑动量',valueType:'number'}
      ]
    },
    {
      key: 'onpointerenter',
      label: '鼠标移入',
      params: []
    },
    {
      key: 'onpointerleave',
      label: '鼠标移出',
      params: []
    },
  ],
};
CodeGeeX
插入复制
// 定义types对象，用于存储事件类型
const types = {
  // 事件类型
  type: 'ALL_EVENT_XJ',
  // 图标
  icon: 'https://ocean.codemao.cn/appcraft/resource/icon/基础/点击.svg',
  // 标题
  title: '任意控件事件',
  // 版本
  version: '1.2.0',
  // 作者
  author: 'XJ王大哥(2357942846)',
  // 是否隐藏
  isInvisibleWidget: true,
  // 是否全局
  isGlobalWidget: false,
  // 属性
  properties: [
    {
      // 属性名
      key: 'tip',
      // 属性标签
      label: '使用教程',
      // 属性值类型
      valueType: 'string',
      // 默认值
      defaultValue: '请先使用F12获取获取控件ID，然后以"#{控件ID}"的形式填入属性中，当然，也可以自定义选择器。注意，要使用，请在屏幕中添加积木“当打开屏幕时：调用 任意控件事件 绑定事件”。',
      // 编辑器类型
      editorType: 'TextArea',
      // 生成块
      generateBlock: false,
    },
    {
      // 属性名
      key: 'ID',
      // 属性标签
      label: '选择器',
      // 属性值类型
      valueType: 'string',
      // 默认值
      defaultValue: '',
    }
  ],
  // 方法
  methods: [
      {
        // 方法名
        key: 'bindingEvents',
        // 方法标签
        label: '初始化',
        // 参数
        params: [],
      },
  ],
  // 事件
  events: [
    {
      // 事件名
      key: 'onclick',
      // 事件标签
      label: '被点击',
      // 参数
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      // 事件名
      key: 'onpointerdown',
      // 事件标签
      label: '被按下',
      // 参数
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      // 事件名
      key: 'onpointerup',
      // 事件标签
      label: '被松开',
      // 参数
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      // 事件名
      key: 'ondblclick',
      // 事件标签
      label: '被双击',
      // 参数
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'}
      ]
    },
    {
      // 事件名
      key: 'onpointermove',
      // 事件标签
      label: '被滑动',
      // 参数
      params: [
        {key:'X',label:'X',valueType:'number'},
        {key:'Y',label:'Y',valueType:'number'},
        {key:'movementX',label:'X滑动量',valueType:'number'},
        {key:'movementY',label:'Y滑动量',valueType:'number'}
      ]
    },
    {
      // 事件名
      key: 'onpointerenter',
      // 事件标签
      label: '鼠标移入',
      // 参数
      params: []
    },
    {
      // 事件名
      key: 'onpointerleave',
      // 事件标签
      label: '鼠标移出',
      // 参数
      params: []
    },
  ],
};
Switch to English

你
/fixbug


class Widget extends InvisibleWidget {
    constructor(props) {
        super(props);
        this.ID = props.ID;